import { Message } from 'element-ui';

export default class Way {
  /**
   * 1.电话号码正则
   * @param {*} phone
   * @returns
   */
  static setCheckPhone(phone) {
    const mPattern =
      /^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-7|9])|(?:5[0-3|5-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[1|8|9]))\d{8}$/;
    return mPattern.test(phone);
  }

  /**
   * 2.身份证正则
   * @param {*} card 可验证一二代身份证
   * @returns
   */
  static setIdentityCard(card) {
    const cardID =
      /(^\d{8}(0\d|10|11|12)([0-2]\d|30|31)\d{3}$)|(^\d{6}(18|19|20)\d{2}(0\d|10|11|12)([0-2]\d|30|31)\d{3}(\d|X|x)$)/;
    return cardID.test(card);
  }

  /**
   * 3.提示消息
   * @param {*} msg 提示文本
   * @param {*} num 提示类型 1 成功；2 警告；3 失败
   * @param {*} isClose 是否可关闭 true
   */
  static setMessage(msg, num, isClose = false) {
    let type;
    switch (num) {
      case 1:
        type = 'success';
        break;
      case 2:
        type = 'warning';
        break;
      case 3:
        type = 'error';
        break;

      default:
        break;
    }

    Message({
      showClose: isClose,
      message: msg,
      type,
    });
  }
  /**
   * 4.字符串类型的数组转为数字类型的数字
   * @param {*} num 字符串类型的数组
   * @returns
   */
  static strArrToNumber(num) {
    return num.map(Number);
  }

  /**
   * 5.将数组转为字符串,key为需要的属性,然后返回
   * @param {*} arr
   * @param {*} key
   * @returns
   */
  static arrayToString(arr, key) {
    let str = [];
    arr.forEach((oj) => {
      str.push(oj[key]);
    });

    return str.join(',');
  }
}
